<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8" />
		<title>姓名案例_methods实现</title>
		<!-- 引入Vue -->
		<script type="text/javascript" src="../js/vue.js"></script>
	</head>
	<body>
		<!-- 准备好一个容器-->
		<div id="demo">
			<!-- 使用methods实现，稍微好一点，因为模板中的代码简单了，但是有效率上的问题，naLaiBaFullName被调用的太频繁了 -->
			姓：<input type="text" v-model="firstName"> <br><br>
			名：<input type="text" v-model="lastName"> <br><br>
			全名：<span>{{naLaiBaFullName()}}</span> <br><br>
			测试x：<input type="text" v-model="x">
		</div>
	</body>

	<script type="text/javascript">
		Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示。
		
		new Vue({
			el:'#demo',
			data:{
				firstName:'zhang',
				lastName:'san',
				x:666
			},
			methods:{
				/* 
						如果模板中这样写：<span>{{naLaiBaFullName()}}</span>
						那么naLaiBaFullName会在两个时候调用：
									1.Vue初次渲染页面时调用。
									2.当data中任何一个数据发生改变的时候调用。
				*/
				naLaiBaFullName(){
					console.log('naLaiBaFullName被调用了')
					//从vm上解构出来firstName、lastName
					const {firstName,lastName} = this
					return firstName[0].toUpperCase() + firstName.slice(1) + '-' + lastName
				}
			}
		})
	</script>
</html>